package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 移动套餐管理对象 mobile_plan
 * 
 * @author ruoyi
 * @date 2025-01-07
 */
public class MobilePlan extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 套餐编号 */
    private Long planId;

    /** 套餐名称 */
    @Excel(name = "套餐名称")
    private String planName;

    /** 套餐描述 */
    @Excel(name = "套餐描述")
    private String description;

    /** 套餐价格 */
    @Excel(name = "套餐价格")
    private BigDecimal price;

    /** 流量限制（如10GB/月） */
    @Excel(name = "流量限制", readConverterExp = "如=10GB/月")
    private String dataLimit;

    /** 通话时长（分钟） */
    @Excel(name = "通话时长", readConverterExp = "分=钟")
    private Long callMinutes;

    /** 短信条数限制 */
    @Excel(name = "短信条数限制")
    private Long smsLimit;

    /** 计费周期（0月费 1年费） */
    @Excel(name = "计费周期", readConverterExp = "0=月费,1=年费")
    private String billingCycle;

    /** 有效期（如1个月、1年） */
    @Excel(name = "有效期", readConverterExp = "如=1个月、1年")
    private String validityPeriod;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /** 运营商编号 */
    @Excel(name = "运营商编号")
    private Long operatorId;

    public void setPlanId(Long planId) 
    {
        this.planId = planId;
    }

    public Long getPlanId() 
    {
        return planId;
    }
    public void setPlanName(String planName) 
    {
        this.planName = planName;
    }

    public String getPlanName() 
    {
        return planName;
    }
    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setDataLimit(String dataLimit) 
    {
        this.dataLimit = dataLimit;
    }

    public String getDataLimit() 
    {
        return dataLimit;
    }
    public void setCallMinutes(Long callMinutes) 
    {
        this.callMinutes = callMinutes;
    }

    public Long getCallMinutes() 
    {
        return callMinutes;
    }
    public void setSmsLimit(Long smsLimit) 
    {
        this.smsLimit = smsLimit;
    }

    public Long getSmsLimit() 
    {
        return smsLimit;
    }
    public void setBillingCycle(String billingCycle) 
    {
        this.billingCycle = billingCycle;
    }

    public String getBillingCycle() 
    {
        return billingCycle;
    }
    public void setValidityPeriod(String validityPeriod) 
    {
        this.validityPeriod = validityPeriod;
    }

    public String getValidityPeriod() 
    {
        return validityPeriod;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }
    public void setOperatorId(Long operatorId) 
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() 
    {
        return operatorId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("planId", getPlanId())
            .append("planName", getPlanName())
            .append("description", getDescription())
            .append("price", getPrice())
            .append("dataLimit", getDataLimit())
            .append("callMinutes", getCallMinutes())
            .append("smsLimit", getSmsLimit())
            .append("billingCycle", getBillingCycle())
            .append("validityPeriod", getValidityPeriod())
            .append("status", getStatus())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("operatorId", getOperatorId())
            .toString();
    }
}
